home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / network / file-tra / rdist-6.1 / rdist-6 / rdist-6.1.0-linuxpl2 / include / filesys.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-03-31  |  4.3 KB  |  169 lines

  1. /*
  2.  * Copyright (c) 1983 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice, this list of conditions and the following disclaimer.
  10.  * 2. Redistributions in binary form must reproduce the above copyright
  11.  *    notice, this list of conditions and the following disclaimer in the
  12.  *    documentation and/or other materials provided with the distribution.
  13.  * 3. All advertising materials mentioning features or use of this software
  14.  *    must display the following acknowledgement:
  15.  *    This product includes software developed by the University of
  16.  *    California, Berkeley and its contributors.
  17.  * 4. Neither the name of the University nor the names of its contributors
  18.  *    may be used to endorse or promote products derived from this software
  19.  *    without specific prior written permission.
  20.  *
  21.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  22.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  24.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  25.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  26.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  27.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  28.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  29.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  30.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31.  * SUCH DAMAGE.
  32.  */
  33.  
  34. /*
  35.  * $Id: filesys.h,v 6.17 1994/03/31 02:52:58 mcooper Exp $
  36.  * @(#)filesys.h
  37.  */
  38.  
  39. #ifndef __filesys_h__
  40. #define __filesys_h__
  41.  
  42. /*
  43.  * File System information
  44.  */
  45.  
  46. /*
  47.  * Mount information
  48.  */
  49. #if FSI_TYPE == FSI_GETMNT
  50. #    include <sys/types.h>
  51. #    include <sys/param.h>
  52. #    include <sys/mount.h>
  53. #    define MOUNTED_FILE        "<none>"
  54. #endif
  55.  
  56. #if FSI_TYPE == FSI_GETFSSTAT
  57. #    include <sys/types.h>
  58. #    include <sys/mount.h>
  59. #    define MOUNTED_FILE        "<none>"
  60. #endif
  61.  
  62. #if FSI_TYPE == FSI_MNTCTL
  63. #    include <sys/mntctl.h>
  64. #    define MOUNTED_FILE        "<none>"
  65. #endif
  66.  
  67. #if FSI_TYPE == FSI_GETMNTENT
  68. #    include <mntent.h>
  69. #    define    MOUNTED_FILE        MOUNTED
  70. #endif
  71.  
  72. #if FSI_TYPE == FSI_GETMNTENT2
  73. #if     defined(MNTTAB_H)
  74. #       include MNTTAB_H
  75. #endif    /* MNTTAB_H */
  76. #if     defined(MNTENT_H)
  77. #       include MNTENT_H
  78. #endif    /* MNTENT_H */
  79. #    define    MOUNTED_FILE        MNTTAB
  80. #endif    /* FSI_GETMNTENT2 */
  81.  
  82. #if    !defined(MOUNTED_FILE) && defined(MNT_MNTTAB)    /* HPUX */
  83. #    define MOUNTED_FILE        MNT_MNTTAB
  84. #endif    /* MNT_MNTTAB */
  85.  
  86. /*
  87.  * NCR OS defines bcopy and bzero
  88.  */
  89. #if defined(NCR)
  90. #undef bcopy
  91. #undef bzero
  92. #endif    /* NCR */
  93.  
  94. /*
  95.  * Stat Filesystem
  96.  */
  97. #if     defined(STATFS_TYPE)
  98. #if defined(ultrix)
  99.     typedef struct fs_data        statfs_t;
  100. #    define f_bavail            fd_req.bfreen
  101. #    define f_bsize            fd_req.bsize
  102. #    define f_ffree            fd_req.gfree
  103. #else
  104. #if defined(_AIX) || STATFS_TYPE == STATFS_SYSV
  105. #    include <sys/statfs.h>
  106.     typedef struct statfs        statfs_t;
  107. #    define f_bavail            f_bfree
  108. #else
  109. #if defined(SVR4)
  110. #    include <sys/statvfs.h>
  111.     typedef struct statvfs        statfs_t;
  112. #    define statfs(mp,sb)        statvfs(mp,sb)
  113. #else
  114. #if defined(BSD386) || defined(__bsdi__) || STATFS_TYPE == STATFS_OSF1
  115.     typedef struct statfs        statfs_t;
  116. #else
  117. #    include <sys/vfs.h>
  118.     typedef struct statfs         statfs_t;
  119. #endif    /* BSD386 */
  120. #endif    /* SVR4 */
  121. #endif    /* _AIX */
  122. #endif    /* ultrix */
  123. #endif    /* STATFS_TYPE */
  124.  
  125. /*
  126.  * Mount Entry definetions
  127.  */
  128. #ifndef METYPE_OTHER
  129. #define METYPE_OTHER            "other"
  130. #endif
  131. #ifndef METYPE_NFS
  132. #define METYPE_NFS            "nfs"
  133. #endif
  134. #ifndef MEFLAG_READONLY
  135. #define MEFLAG_READONLY            0x01
  136. #endif
  137. #ifndef MEFLAG_IGNORE
  138. #define MEFLAG_IGNORE            0x02
  139. #endif
  140.  
  141. /*
  142.  * Our internal mount entry type
  143.  */
  144. struct _mntent {
  145.     char                   *me_path;    /* Mounted path */
  146.     char                   *me_type;    /* Type of mount */
  147.     int                me_flags;    /* Mount flags */
  148. };
  149. typedef struct _mntent mntent_t;
  150.  
  151. /*
  152.  * Internal mount information type
  153.  */
  154. struct mntinfo {
  155.     mntent_t            *mi_mnt;
  156.     struct stat            *mi_statb;
  157.     struct mntinfo            *mi_nxt;
  158. };
  159.  
  160. /*
  161.  * Declarations
  162.  */
  163. FILE           *setmountent();
  164. mntent_t       *getmountent();
  165. mntent_t       *newmountent();
  166. void        endmountent();
  167.  
  168. #endif    /* __filesys_h__ */
  169.